/** tabCode定义 全部 | 待提交 | 审批中 | 生效中 | 已失效 */
export declare type TabCode = 'All' | 'NeedSubmit' | 'Audit' | 'Valid' | 'Invalid';

/** tab角标每个状态名单数量 */
export interface TabCountData {
  /** 全部状态名单数量 */
  allStatusCount: number;
  /** 待提交状态名单数量 */
  needSubmitStatusCount: number;
  /** 审核中状态名单数量 */
  auditStatusCount: number;
  /** 生效中状态名单数量 */
  validStatusCount: number;
  /** 已失效中状态名单数量 */
  invalidStatusCount: number;
}

/** 规则列表数据 */
export interface RuleListData {
  /** 状态tab，0-全部、1-待提交、2-审核中、3-生效中、4-已失效 */
  statusTab: number;
  /** 适用组织，可以为空 */
  orgIdList: string[];
  /** 职级，可以为空 */
  levelList: string[];
  /** jobFamilyId，可以为空 */
  jobFamilyId: string;
  /** jobGroupId列表，可以为空 */
  jobGroupIdList: string[];
  /** 敏感岗位分类列表，1-掌握或可调配重要资源、2-与利益相关方密切合作、3-公司层全局关键数据、4-各业务线关键数据、5-高级岗位类 */
  sensitivePosTypeList: number[];
  /** 规则编号，可以为空 */
  ruleNumber: string;
  /** 审批单号，可以为空 */
  bpmCode: string;
  /** 状态，1-待提交、2-审核中、3-生效中、4-已失效、5-已删除，可以为空 */
  ruleStatus: number[];
}

/** 规则名单列表数据 */
export interface RulePersonListDetail {
  /** 人员名单信息ID */
  personListId: number;
  /** 创建类型，1-规则、2-自定义 */
  createType: number;
  /** 创建类型名称 */
  createTypeNmae: string;
  /** 创建源 */
  createSource: string;
  /** 创建源名称，和创建类型一起使用，创建类型为规则时创建源是规则编号，创建类型为自定义时创建源为创建人mis */
  createSourceName: string;
  /** 员工ID */
  empId: string;
  /** 员工姓名/mis */
  empName: string;
  /** 所在组织ID */
  orgId: string;
  /** 所在组织名称 */
  orgNamePath: string;
  /** jobFamilyId */
  jobFamilyId: string;
  /** jobfamily名称 */
  jobfamilyName: string;
  /** jobGroupId */
  jobGroupId: string;
  /** jobgroup名称 */
  jobGropName: string;
  /** 职级 */
  level: string;
  /** 敏感岗位分类列表，1-掌握或可调配重要资源、2-与利益相关方密切合作、3-公司层全局关键数据、4-各业务线关键数据、5-高级岗位类 */
  sensitivePosTypeList: string;
  /** 敏感岗位分类名称列表 */
  sensitivePosTypeNameList: string;
  /** 名单状态，1-待提交、2-审核中、3-生效中、4-已失效、5-已删除 */
  personListStatus: number;
  /** 名单状态名称 */
  personListStatusName: string;
}

/** 规则详情数据 */
export interface RuleDetail {
  /** 规则状态，1-待提交、2-审核中、3-生效中、4-已失效、5-已删除 */
  ruleStatus: number;
  /** 规则状态名称 */
  ruleStatusName: string;
  /** 创建时间 */
  createTime: number;
  /** 生效时间 */
  validTime: number;
  /** 失效时间 */
  invalidTime: number;
  /** 创建人员工ID */
  creatorEmpId: string;
  /** 创建人员工姓名/mis号 */
  creatorEmpName: string;
  /** 规则编号 */
  ruleNumber: string;
  /** 名单数量 */
  personListCount: number;
  /** 所在组织ID */
  orgId: string;
  /** 所在组织名称 */
  orgNamePath: string;
  /** jobFamilyId */
  jobFamilyId?: SelectOption<string>;
  /** jobfamily名称 */
  jobFamilyName: string;
  /** jobGroup列表 */
  jobGroupInfoList: SelectOption<string>[];
  /** 职级信息 */
  levelInfo: string;
  /** 下属信息，false-无下属、true-有下属 */
  subordinateInfo: boolean | SelectOption<number>;
  /** 敏感岗位分类列表，1-掌握或可调配重要资源、2-与利益相关方密切合作、3-公司层全局关键数据、4-各业务线关键数据、5-高级岗位类 */
  sensitivePosTypeList: string;
  /** 敏感岗位分类名称列表 */
  sensitivePosTypeNameList: string;
  /** 风险描述 */
  riskDesc: string;
  /** 版本 */
  version: string;
}

/** 单据状态枚举 */
export enum TabStatus {
  /** 全部 */
  All = 0,
  /** 待提交 */
  NeedSubmit = 1,
  /** 审批中 */
  Audit = 2,
  /** 生效中 */
  Valid = 3,
  /** 已失效 */
  Invalid = 4,
}

/** 接口人状态 */
export enum PersonListStatus {
  /** 待提交 */
  needSubmit = 1,
  /** 审批中 */
  audit = 2,
  /** 生效中 */
  valid = 3,
  /** 已失效 */
  invalid = 4,
  /** 已删除 */
  deleted = 5,
}
